from random import randint
# for i in range(1,10+1,2):  #0-9
#     print(i,end="\t")
#
# # 打印100以内   能被3整出的数字
# for i in range(1,100+1):
#     if i%3==0:
#         print(i,end="\t")

#猜数字
#产生随机数
# num  = randint(1,20)
# while True:
#     guess = int(input('Guess a number: '))
#     if guess > num:
#         print('Too high')
#     elif guess < num:
#         print('Too low')
#     else:
#         print('You got')
#         break

# for i in range(1,100+1):
#     #if i % 7 ==0 or str(i).find('7') != -1:
#     #if i % 7 ==0 or str(i).count('7') > 0:
#     if i % 7 ==0 or '7' in str(i) != -1:
#         print(i,end="\t")


#打印菱形
for i in range(1,11+1,2):
    print(("*" * i).center(11))
for i in range(9,0,-2):
    print(("*" * i).center(11))

#打印菱形2 多层嵌套
rows = int(input('请输入菱形的边长: \n'))
row = 1
while row <= rows:          # 因为row是递增的,该参数也是用来参与打印⭐的数量
    c = 1
    while c <= (rows - row):
        print(' ', end='')  # 参数end默认是换行\n,设置为空后控制台将继续输出接下来的内容
        c += 1
    print(row * '* ')
    row += 1

b = rows - 1    # 该参数是用来参与打印⭐的数量
while b > 0:    # 因为要参数b要递减所以用大于来判断
    c = 1       # 该参数就是用来参与打印空格循环的
    while c + b <= rows:    # 这个循环就是用来打印空格,数量从一到菱形边长减一
        print(' ', end='')
        c += 1
    print(b * '* ')
    b -= 1


#打印水仙花数
# 打印100以内的水仙花数
for i in range(100, 1000):
    a = i % 10  # 个位数
    b = int((i % 100) / 10)  # 十位数
    c = int(i / 100)    # 百位数
    num = a*a*a + b*b*b + c*c*c
    if num == i:
        print(i)

#打印100以内的质数
# 质数是指大于 1 的自然数，只有两个正因数：1 和它本身
prime_number=[]
for i in range(2,100):
    m=1
    li = []
    while m<=i:
        if i % m == 0:
            li.append(m)
        m+=1
    total=sum(li)
    if total == i+1:
        prime_number.append(i)
print(prime_number)

#打印斐波那契额数列
a, b = 0, 1
while a <= 100:
    print(a, end=' ')   # 该式子中a当前项,b代表后一项
    a, b = b, a + b     # 所以b被赋予为前两项的和

#打印九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):   # i代表的是左边乘数从1到9 j代表右边乘数代表从1到i,由于for循环是左闭右开的所以是i+1
        print(f"{j} * {i} = {i * j}", end='\t')
    print()

#打印100以内的完数
total=[]
for i in range(2,100+1):
    m=1
    li=[]
    while m<i:
        if i%m==0:
            li.append(m)
        m+=1
    if sum(li) == i:
        total.append(i)
print(total)